gtktoolpalette: Only call gdk_atom_intern when we're constructed
authorColin Walters <walters@verbum.org>
Sat, 23 Mar 2013 18:09:20 +0000 (14:09 -0400)
committerColin Walters <walters@verbum.org>
Sat, 23 Mar 2013 21:07:15 +0000 (17:07 -0400)
Otherwise we end up trying to instantiate a display manager in
class_init which breaks introspection scanning.

https://bugzilla.gnome.org/show_bug.cgi?id=696457

gtk/gtktoolpalette.c

index 3d9d7f3ccca7b518a604299a5dcec9c8366836f7..a5790531ef01a1aede233139b2d1846ea5480378 100644 (file)
@@ -216,6 +216,12 @@ gtk_tool_palette_init (GtkToolPalette *palette)
   palette->priv->style_set = FALSE;
 
   palette->priv->text_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
+
+  if (dnd_target_atom_item == GDK_NONE)
+    {
+      dnd_target_atom_item = gdk_atom_intern_static_string (dnd_targets[0].target);
+      dnd_target_atom_group = gdk_atom_intern_static_string (dnd_targets[1].target);
+    }
 }
 
 static void
@@ -1080,9 +1086,6 @@ gtk_tool_palette_class_init (GtkToolPaletteClass *cls)
                                                                     GTK_PARAM_READWRITE));
 
   g_type_class_add_private (cls, sizeof (GtkToolPalettePrivate));
-
-  dnd_target_atom_item = gdk_atom_intern_static_string (dnd_targets[0].target);
-  dnd_target_atom_group = gdk_atom_intern_static_string (dnd_targets[1].target);
 }
 
 /**